In order to perform debugging analysis, crash analysis or some other for of analysis on the internal state of computer system, a snapshot of the state of a computer system is usually required. System captures, or “dumps”, of the internal state of a computer system can be a critical step in the diagnoses of failures. A system capture often involves capturing the internal objects of the computer system, or in certain cases, the computer's kernel, yet they also typically require rebooting the system. For many commercial and business environments, which need to perform a specified analysis on a portion of their computer system, shutting down and rebooting wastes time, consumes resources and can be commercially infeasible.
Therefore, for very large computer systems, live dump programs that do not require reboot present two problems. First, capturing an entire system, which is very large, takes too much time, and for certain customer environments, that can be neither practical nor cost-efficient. Second, live dump programs typically have space-constraints, which restricts the amount of internal objects it can capture in a single serialized pass. Thus, capturing the entire system in one pass cannot be done. Rather, multiple passes are necessary to capture the entire system. A live dump capture performed over several passes, however, will result in inconsistent information because internal objects will have changed between passes. Live dump programs cannot therefore capture a system as it existed at a single point in time. This inhibits a user's ability to perform debugging.